/* 首先在根目录下安装nodeJs的ws模块：npm install ws */

/* 引入nodejs的webSocket模块 */
const WebSocket = require('ws').Server

/* 创建一个webSocket实例 */
let wss = new WebSocket({
    url: 'localhost', // webSocket服务的ip
    port: 8887 // webSocket服务的端口
})

/* 监听客户端连接 */
wss.on('connection', function (ws, req) {

    let reqUser = req.url.split('?')[1]
    let userId = reqUser && reqUser.split('=')[1]
    ws.id = userId // 给每个连接的客户端绑定一个id

    /* 监听客户端发过来的信息 */
    ws.on('message', function (data) {
        let newData = JSON.parse(data)
        newData.time=new Date().getTime()
        let nowState=0
        let denyMessage=[]
        let setInterval1=null
        wss.clients.forEach(itemWs => {//这里给所有人发信息变成找特定的id，给特定的人发信息，some找到目标
            if(itemWs.id==newData.sheId){
                console.log(newData)
                nowState=1
                itemWs.send(JSON.stringify(newData))
            }else {
                console.log(">>>>>>>>>>>>")
            }
            // itemWs.send(JSON.stringify(newData))
        })
        if(nowState==0){
            denyMessage.push(newData)
            setInterval1=setInterval(()=>{
                console.log("不在线")
                if(denyMessage.length!==0){
                    denyMessage.forEach((item,idx)=>{
                        wss.clients.forEach(itemws=>{
                            if(item.sheId==itemws.id){
                                itemws.send(JSON.stringify(item))
                                denyMessage.splice(idx,1)
                                return true
                            }
                        })
                    })

                }else {
                    nowState=1
                    clearInterval(setInterval1)
                }
            },2000)


        }
    })
})
console.log('webSocket服务已开启,端口为,8887')
